<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Flot Examples: Error Bars</title>
    <link href="../examples.css" rel="stylesheet" type="text/css">
    <!--[if lte IE 8]>
    <script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
    <script language="javascript" type="text/javascript" src="../../jquery.js"></script>
    <script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
    <script language="javascript" type="text/javascript" src="../../jquery.flot.errorbars.js"></script>
    <script language="javascript" type="text/javascript" src="../../jquery.flot.navigate.js"></script>
    <script type="text/javascript">

        $(function () {

            function drawArrow(ctx, x, y, radius) {
                ctx.beginPath();
                ctx.moveTo(x + radius, y + radius);
                ctx.lineTo(x, y);
                ctx.lineTo(x - radius, y + radius);
                ctx.stroke();
            }

            function drawSemiCircle(ctx, x, y, radius) {
                ctx.beginPath();
                ctx.arc(x, y, radius, 0, Math.PI, false);
                ctx.moveTo(x - radius, y);
                ctx.lineTo(x + radius, y);
                ctx.stroke();
            }

            var data1 = [
                [1, 1, .5, .1, .3],
                [2, 2, .3, .5, .2],
                [3, 3, .9, .5, .2],
                [1.5, -.05, .5, .1, .3],
                [3.15, 1., .5, .1, .3],
                [2.5, -1., .5, .1, .3]
            ];

            var data1_points = {
                show: true,
                radius: 5,
                fillColor: "blue",
                errorbars: "xy",
                xerr: {show: true, asymmetric: true, upperCap: "-", lowerCap: "-"},
                yerr: {show: true, color: "red", upperCap: "-"}
            };

            var data2 = [
                [.7, 3, .2, .4],
                [1.5, 2.2, .3, .4],
                [2.3, 1, .5, .2]
            ];

            var data2_points = {
                show: true,
                radius: 5,
                errorbars: "y",
                yerr: {show: true, asymmetric: true, upperCap: drawArrow, lowerCap: drawSemiCircle}
            };

            var data3 = [
                [1, 2, .4],
                [2, 0.5, .3],
                [2.7, 2, .5]
            ];

            var data3_points = {
                //do not show points
                radius: 0,
                errorbars: "y",
                yerr: {show: true, upperCap: "-", lowerCap: "-", radius: 5}
            };

            var data4 = [
                [1.3, 1],
                [1.75, 2.5],
                [2.5, 0.5]
            ];

            var data4_errors = [0.1, 0.4, 0.2];
            for (var i = 0; i < data4.length; i++) {
                data4_errors[i] = data4[i].concat(data4_errors[i])
            }

            var data = [
                {color: "blue", points: data1_points, data: data1, label: "data1"},
                {color: "red", points: data2_points, data: data2, label: "data2"},
                {color: "green", lines: {show: true}, points: data3_points, data: data3, label: "data3"},
                // bars with errors
                {color: "orange", bars: {show: true, align: "center", barWidth: 0.25}, data: data4, label: "data4"},
                {color: "orange", points: data3_points, data: data4_errors}
            ];

            $.plot($("#placeholder"), data, {
                legend: {
                    position: "sw",
                    show: true
                },
                series: {
                    lines: {
                        show: false
                    }
                },
                xaxis: {
                    min: 0.6,
                    max: 3.1
                },
                yaxis: {
                    min: 0,
                    max: 3.5
                },
                zoom: {
                    interactive: true
                },
                pan: {
                    interactive: true
                }
            });

            // Add the Flot version string to the footer

            $("#footer").prepend("Flot " + $.plot.version + " &ndash; ");
        });

    </script>
</head>
<body>

<div id="header">
    <h2>Error Bars</h2>
</div>

<div id="content">

    <div class="demo-container">
        <div id="placeholder" class="demo-placeholder"></div>
    </div>

    <p>With the errorbars plugin you can plot error bars to show standard deviation and other useful statistical
        properties.</p>

</div>

<div id="footer">
    Copyright &copy; 2007 - 2013 IOLA and Ole Laursen
</div>

</body>
</html>
